package secondStage.part6.Lambda表达式;

/**
 * @ClassName: [LambdaDemo]
 * @Description: 体验Lambda表达式
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-07]
 * @Version: [v1.0]
 */
//需求:启动一个线程，在控制台输出一句话：多线程程序已经启动了
public class LambdaDemo {
    public static void main(String[] args) {
        //实现类的方式实现需求
/*
        MyRunnable my = new MyRunnable();
        Thread t = new Thread(my);
        t.start();*/
        //简化上述代码
        //匿名内部类的方式改进
/*        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("多线程程序已经启动了");
            }
        }).start();
//        匿名内部类中重写run()方法的代码分析
//        ●方法形式参数为空, 说明调用方法时不需要传递参数
//        ●方法返回值类型为void ,说明方法执行没有结果返回
//        ●方法体中的内容，是我们具体要做的事情
        */
        //Lambda表达式的方式改进
        new Thread(()->{
            System.out.println("多线程程序已经启动了");
        }).start();
//        Lambda表达式的代码分析
//        ●()：里面没有内容，可以看成是方法形式参数为空
//        ●->：用箭头指向后面要做的事情
//        ●{}：包含一段代码，我们称之为代码块，可以看成是方法体中的内容
    }
}
